using UnityEngine;

public class SPR_Parallax : MonoBehaviour
{
	private float length;

	private float height;

	private Vector2 startpos;

	private GameObject Camera;

	[Header("0 - 1 | Higher the number the more distance from camera")]
	public float HorizontalParallaxAmount;

	public float VerticalParallaxAmount;

	public bool backgroundLoop;

	private void Start()
	{
		Camera = CameraManager.instance.gameObject;
		startpos = base.transform.position;
		if ((bool)GetComponent<SpriteRenderer>())
		{
			length = GetComponent<SpriteRenderer>().bounds.size.x;
			height = GetComponent<SpriteRenderer>().bounds.size.y;
		}
		else
		{
			length = 1f;
			height = 1f;
			Debug.LogWarning("Unable to find SpriteRenderer in SPR_Parallax object, defaulting to length/height = 1");
		}
	}

	private void LateUpdate()
	{
		float num = Camera.transform.position.x * (1f - HorizontalParallaxAmount);
		float num2 = Camera.transform.position.x * HorizontalParallaxAmount;
		float num3 = Camera.transform.position.y * (1f - VerticalParallaxAmount);
		float num4 = Camera.transform.position.y * VerticalParallaxAmount;
		base.transform.position = new Vector3(startpos.x + num2, startpos.y + num4, base.transform.position.z);
		if (backgroundLoop)
		{
			if (num > startpos.x + length)
			{
				startpos.x += length;
			}
			else if (num < startpos.x - length)
			{
				startpos.x -= length;
			}
			if (num3 > startpos.y + height)
			{
				startpos.y += height;
			}
			else if (num3 < startpos.y - height)
			{
				startpos.y -= height;
			}
		}
	}
}
